GEOS Font Editor

Version 2.2

User's Manual

by Jim Collette

Copyright (c) 1988

Jim Collette (Jimbob2 on Q-Link)

6782 Junction Road

Pavilion, New York 14525-9755

Introduction page 1

Welcome to the GEOS Font Editor version 2.2! Those of you who are upgrading from an earlier version of this program, you won't believe all the new features! Those of you who are currently using geoFont, after using this program, you may never use geoFont again!

Additions to this program from version 1.2:

* 100% Machine Language - FAST

* runs under GEOS in 64 mode & 128 - 40 column mode. Look for a 128 - 80 column version soon!

* use different input devices, as well as the faithful cursor keys

* create & edit fonts up to 48*48 points

* up, down, left, & right scrolling

* horizontal & vertical flipping

* a stash buffer for copying characters

* undo - no more silly goof ups

* ability to combine multiple fonts into one file by using "fake" point sizes

* and last, but most definitely not least, font scaling. The program will automatically take a font of an existing size and scale it to a new size. Makes multiple point sizes a breeze!

Shareware status: this program is shareware, like version 1.2. Because of the work involved in producing this, I am raising the asked price to $10, but still feel free to send what you wish.

Credits:

Before I begin I wish to express my thanks to a few people:

Francis G. Kostella - author of "Circe", as well as a font editor of his own. It was his font editor that got me started on this project, and without him it wouldn't be here today.

Bruce R. Gilson - creator of fonts, author of a font ID changer (which was necessary on versions 1.0-1.1 of this program), we started talking after 1.1 and became good friends. He offered many suggestions (most of which have been implemented), and faith when the going got rough. Bruce also is the developer of the scaling routine - he developed the algorithm and sent me a BASIC program to scale a font, and I adapted it for GEOS fonts and re-wrote it in ML. Without Bruce there would be no scaler, and a few edit features would not be here either.

Bill Sharp - author of the geoCope assembler - editor, used to create this program. If you can't afford geoProgrammer, get geoCope instead! Shareware for $15. On Q-Link.

Everybody who has sent me shareware money for the 1.x versions,

Everyone on Q-Link who has helped me on the message boards,

Everyone who sent me E-Mail with problems/questions - without you telling me about the problems, they never would have been fixed!

Everyone who stood by me when 1.0 crashed without a fast-loader cartridge,

and last, but not least, everyone at BSW - for help on Q-Link, advice, the GEOS Programmer's Reference Guide, and lastly, for GEOS itself!

And if I missed anyone here, sorry! Everybody above deserves a warm:

THANKS!

Getting Started page 2

To execute the Font Editor, double-click on the Font Editor icon from the deskTop.

Once the program has loaded, you will see a screen with a dialog box on it very similar to the ones in geoWrite & geoPaint.

Here's what the icons do:

Create - start from scratch with a totally blank font.

Open - load an existing font off the disk

Quit - exit the program & return to deskTop.

Now, for a description of how to use them:

Create:

Start by clicking on the "Create" icon. The first thing you will have to input is a filename. The DB you will see will be waiting for your input after the "Filename:" prompt, and you may also click on the Disk & Drive icons. They perform the same functions throughout the entire program - Drive switches between the 2 disk drives (if you only have 1 drive, this icon will not appear, nor will the Disk icon.), and Disk lets you insert a new disk into the data drive. Because this is a VLIR module-swapping program, you must always leave the disk with the program in the drive you booted it with. (Again, same as geoWrite - this isn't that hard!) Don't worry if the filename exists - you can change that later.

Next, you will be asked for the point size. Enter it as a 2-digit decimal number, in the range 2-48. Next is the baseline. The baseline is the line of print - the characters "sit" on it, with the descenders below it. Enter that the same as the point size. Then comes default width - unlike geoFont, my editor allows you to start out with blank characters of a pre-specified width. When the font is initialized, all characters will have the width entered here. If you're making a wide font, enter a big number! Last is the Font ID. This number is how GEOS tells different fonts apart - never give 2 fonts the same ID, or GEOS will get confused.It must be a number from 1 to 1023.

After you enter the ID, there will be a brief pause and then the edit screen will appear. You're ready to start creating!

Open:

After you click on the Open icon, the disk will whir for a few seconds and a DB will pop up with all the fonts on the disk you booted the program from. If you have 2 disk drives and you would like to switch, click Drive. To swap a disk in the other drive (the one you DIDN'T load this program from), click on Disk. Move the highlighter bar onto the file you want, and click on Open.If, for some reason, there is a disk error, you will be sent back to this DB to get another file.

Once you have selected the file, another DB will appear listing the point sizes available in that font. Just type in the number you want, and hit return. Cancel will let you select another file.

Good! You have now just successfully loaded a font, and the editing screen should now be displayed.

Quit:

Not much to say about this one. Exits the program and returns you to the deskTop.

Editing a font page 3

Now comes the fun part - editing. The editing screen looks similar to geoFont, so it should be an easy transition. The character you actually edit is the blown-up one in the right portion of the screen. Next to the big character is a small one, just as it would look from geoWrite. This is for display only. To edit the big character, just point and click! If you are using a mouse and have a hard time making accurate movements, you may also use the cursor keys. They will move the mouse pointer in steps of 4 - just enough to move from pixel to pixel. If you attempt to move the cursor off the character, it will wrap around to the opposite side. (i.e. if you move it off the bottom it will re-appear at the top) Hitting RETURN performs the same action as clicking the mouse button.(RETURN works only while inside the character - you can't use it to click on icons, menus, etc.)

Just under the menus there will be a box with a -,Undo,+, and under it will be Char and some numbers. The plus & minus icons are used to move the curent character. Plus moves it up, minus moves it down. Note: you may also select a character by simply hitting that key, by itself Undo restores the current character to its state before you started to edit it. Scaling (characters), scrolling, flipping, clearing, anything you do can be reversed with Undo.

After the word Char there will be two numbers, one in hex and one in decimal. These are the ASCII code for the character being edited. On the far right side, you will see the character being edited in the system font. This way you always know what character you're on, even if it's blank..

Under the first box on the left side are some icons. The single up, down, left, and right arrows scroll the character up, down, left, and right, respectively. The middle icon, X, clears the current character. (You can use Undo to get it back.) Note that the scroll is destructive - if you scroll something off one side, it will NOT wrap around to the other - it is gone.The S icon performs a stash, and the R performs a retrieve. The double horizontal arrows (lower left) does a mirror X, and the double vertical arrows (lower right) performs a mirror Y.

To the right of the scrolling icons is the display character - you can't do anything with this, it just stays there.

Under the icons is the width box. The plus & minus icons move the width up and down, and by clicking the Width box directly you may enter a new width manually. The middle box (the long one) is where the current character width is displayed.

Down at the bottom of the screen is the status box. Among the things shown are Filename, Point size, Baseline, ID, and file size. The first four (the ones listed in bold here) may be clicked on directly - they are regualr icons. To change the filename, just click anywhere on Filename, or within the actual name. The only one you can't change is size

About size: this is one I had originally planned not to include, but I had some extra room and figured why not? I can't seem to find anywhere on Q-Link, or in the GEOS Programmer's Reference Guide, a limit on file size. I think that if it is too large, GEOS will have trouble dealing with it. This is just a guess, but I would tend to say keep it under 5000 bytes.This program has enough room for up to 12288, so if you overshoot it a bit it won't hurt. Just try to make sure it is under 5000 or so before you save it.If the font is too big, geoWrite will not use it - it will be just as though you had not loaded a font.

Now, for a description of those menus:

geos:

info: this simply displays a DB displaying the current version of this program

.....continued on next page

page 4

file:

close: closes the current file and returns you to the start of the program. NOTE: this program does not automatically update your font when you close it. You must save it manually. If your font has not been saved, you will be reminded and given a chance to back out.

scale: scales entire font - see "Scaling" later in this manual.

save: saves the font - see "Saving later in this manual.

delete ps: (ps means point size) with this option you may delete a point size from an existing font on the disk. After you select it you will see the GETFILES DB once again, so pick the file. After you pick a file, you will be asked for the point size to delete. If it doesn't exist you will be told so. If it does exist, you will be asked whether you really want to delete it. If you click on NO, you will be returned to the edit mode and nothing will have happened. If you click YES, the point size will be deleted.

quit : like close, but you will be returned to the deskTop. If the file hasn't been saved, you will be given the chance to back out.

options:

C= S stash char: copies the current character into the stash buffer, to be recalled with retrieve.Can also be selected from the S icon.

C= R retrieve char: copies the character from the stash buffer onto the current character. This options is especially useful for letters such as b,d,p,and q where you can design the b, for example, stash it, move to d, retrieve it, do a mirror X, and you've got a d! Also you can click R icon.

clear char: same as the X icon - you can still Undo from it

reverse char: toggles all bits, making the character in reverse video. Like "invert" in geoPaint. This is reversible, and undoable.

C= X mirror X: also known as horizontal flip, this turns the character into it's mirror image. It is reversible. Or click double horizontal arrows.

C= Y mirror Y: also known as vertical flip, again does a mirror image. Yes, it's reversible! Or click double vertical arrows.

change point size: performs same function as clicking on the Point Size indicator at the bottom of the screen. It doesn't scale it, just changes it. Be careful, as it is destructive!

change baseline: again, same as clicking on Baseline at bottom of screen. The baseline must be less than the point size.

C= W change width: same as clicking on Width box. Enter a number from 1 to 48 for width.

scale char: scales an individual character - see "Scaling"

Scaling:

This is one of the areas where this program really shines. This routine will aid all of you who are 1) trying to make a font in many point sizes, and 2) trying to mix different fonts of different point sizes. This is especially useful with the Font Pack 2 (or Font Pack Plus), as many of the fonts on that disk come in some exotic point sizes, and therefore aren't directly compatible with other fonts. (Unless you don't mind big spacing gaps in geoWrite...)

The font scaler algorithm was developed by Bruce R. Gilson, thanks Bruce!

...continued on next page

Scaling (continued) page 5

Scaling the entire font:

This routine is available from the file menu. First you will be given a warning and a chance to back out. If you select NO, no scaling will occur, and you will be returned to the edit mode.

If you choose YES, first you will be asked for the new point size. 2-48, & it cannot be the same as the old point size.Then you will be asked for the threshold. This value determines the darkness of the resulting characters. The lower the number, the darker or thicker they will be. I don't recommend using value over 50 unless you really want a thin character. 33 should be good for most things, but if the input character is really light you may want to lower the threshold a bit.. 1-99 for threshold value.

Now it starts scaling. The small character is erased and is replaced by a BSW 9 point character telling you which character it is scaling. The times can vary greatly, but in my tests, going from 12 to 24 point - values in that ballpark - generally take about 5-6 seconds per character. @ 96 characters, that works out to about 8-10 minutes for the entire font. The values overall can go from about 2 seconds to almost 20, depending on how big the characters are. Just get up, get a bite to eat, go to the bathroom, whatever, when you get back it should be nearing completion..10 minutes may sound like a long time, but if you work it down to 6.25 secs. per character, that's not too bad. Can YOU scale a character in 6.25 seconds? I doubt it.

This routine isn't perfect, however (this isn't a super-computer!), and when scaling up, you may need to add a few pixels here and there because the character may look rough. But that shouldn't be very hard to do, and at least it's quick..

Note: unless you have some pretty skinny characters (or only part of a character set), it is not recommended that you scale all the way up to 48, or near there. The font will get VERY big.

Scaling a single character:

Scaling the entire font will automatically scale the widths using the same factor used for height. However, there may be some occasions where you want to scale the width separately. This routine was orginally written to compensate for some of the errors created above, but those errors have since been fixed, and this routine probably isn't needed anymore. But it's already in, so I might as well leave it..

Click on scale this char in the options menu. First you will be asked for the new width (1-48).Then you will be prompted for the threshold. (see above) Finally it will scale. After about 2-20 seconds, you will be returned to the edit mode. If you don't like the character, just click Undo and you can get the old one back. The stash buffer is also preserved while scaling.

That's all there is to it ! Let me know how you like the scaling routine, and if you find any bugs in it. I can be reached on Q-Link as "Jimbob2".

Saving page 6

To save a file, select save from the file menu. First you will be asked how you want to save the file. Those of you who have previously used a 1.x version will feel right at home here. For those of you who haven't:, there are 2 ways to save a font.

1) As a new file (all by itself)

2) Save it inside an existing file, with other point sizes. (And possibly other fonts also)

How you save depends on what you're doing - if you're creating a blank font, you'd probably want to save it as a new file. If you're touching up an old font, you'd probably want to save it under an existing file.

Open: (& save under an existing font.)

This is what you'll probably be doing most often. First you will be asked for the point size to be saved as. This is a cosmetic point size, the one you will see when loading fonts from this program, and when you pull down a font menu from geoWrite-geoPaint. Generally you will want it the same as the true point size, so just hit return. The main reason you would change it is to combine multiple fonts. By changing the cosmetic point size you can combine up to 7 fonts of the same point size into one file. The actual point size is determined by a byte in the font, so no matter what you pick for a cosmetic point size, the true PS won't be affected. See the example at the end of this manual for a description of how to do it. With this feature you can combine up to 7 different individual fonts into one file, with each point size being a totally different font, yielding up to 49 fonts in GEOS 64 and 42 fonts in GEOS128. (In GEOS128, there are 2 BSW fonts, giving room for only 6 fonts off the disk.) When used correctly, this can be a powerful feature and may end your constant swapping of fonts around on the deskTop.

After you input the cosmetic point size, you will see another one of those file selection DBs. This time you are picking the file to save under. You should know how to do it by know!

It will then check the font to see if a font of the point size you're saving as already exists. If it does, you'll be asked if you want to replace it or not. If you choose YES, it will start to save the file. The first thing it checks for is the number of point sizes in that font. There is a maximum of 7. This is ironic because GEOS actually supports up to 15, but the menu structures in geoWrite are only made to handle 7, and if there are more than 7, it crashes quite nicely. (My apologies to all of you who had that happen with 1.x - I didn't know about it until now!) If there is room, it will save the file, and return you to the editing screen.

Create: (and save as a new font file)

This option saves the font as a new file. First you will be asked for the cosmetic point size, the same as above. Then you input the filename, the same way as when you create a blank font.. Then the program will check for room on the disk, and if there isn't, you will get a disk error #3. Next you will be asked for the class and version number, these you see under "Class:" when you get info on a file from the deskTop. I have heard on Q-Link that at least one of the Convert programs (used to transfer GEOS files to CBM format, for uploading & downloading) will not convert fonts unless they were created with geoFont. I don't know if it was intentional or by accident, but if it happens to you, try using "geoFont" as the class and "1.4" as the version number. If anybody finds out anything about that, let me know!

Finally the font will be saved, and you will be brought back to the edit mode.

Misc. Stuff page 7

First is the example with saving and using the cosmetic point size. What we will do is to take 3 fonts, let's say Roma, Mykonos, and Brennens, and combine them. We want point size 24 from the first 2, and we will scale Brennens to 24 point. Start by loading in the editor.

Steps: 1) when the screen appears, select the "Open" icon.

2) select the font Roma. (either off your data disk, or copy it to the disk w/ the program)

3) enter 24 for the point size

4) when the edit screen appears, select save from the file menu

5) click on the "Create" icon

6) enter 24 for the cosmetic point size

7) enter "Combination" as the filename

8) for class, enter "Demo". for version #, enter 2.0

9) after it finishes saving, select close from the file menu

10) repeat steps 1-4 but load the font Mykonos instead of Roma.

11) click on the "Open" icon

12) enter 25 as cosmetic point size

13) when the list of files appear, open file Combination

14) after it finishes saving, select close from the file menu

15) repeat steps 1-3 but load the font Brennens. do NOT select save yet.

16) select scale from the file menu

17) click YES to confirm, enter 24 as the new point size

18) enter 33 for threshold (just hit RETURN)

19) after it finishes scaling (you can touch it up first if you like), select save from file menu

20) click on "Open" icon

21) enter 26 as cosmetic point size

22) open file Combination

23) after it finishes saving, select quit from the file menu

24) when you are back to the deskTop, put the Combination file on a disk w/geoWrite

25) create a new geoWrite file, and try out the font file!

Point size 24 = Roma 24 point.

Point size 25 = Mykonos 24 point.

Point size 26 = Brennens 24 point.

Disk Errors:

In normal use, you should never encounter any error messages except for some of the ones listed below. If a disk error does occur, it will be displayed in a dialog box as I:(disk error #), as in GEOS. You will be brought back a few levels in whatever operation you were performing, most likely to the spot where you pick a filename.

Here are some of the errors you might encounter:

INSUFFICIENT_SPACE = 3; disk full

FULL_DIRECTORY = 4; too many files on disk - 144 is max. for a 1541 or 1571

INVALID_RECORD = 8; for some reason, this error appears when a W/P tab is on - should be 26.

DEVICE_NOT_FOUND = 13; drive turned off? wrong device number?

WR_PR_ON = 26; write-protect tab on disk